package acwing._2LanQiao._13No13;
/**
 * @Project : AlgorithmLearning
 * @Package : ACWing._2LanQiao._13No13
 * @File : Q4645.java
 * @Author : WangRuoyu
 * @Date : 2023/3/30 16:28
 */

import java.io.*;
import java.util.Arrays;

public class Q4645 {
    static int n;
    static int m;
    static int x;
    static int[] loc;
    static int[] f;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(System.out));
        String[] words = br.readLine().split(" ");
        n = Integer.parseInt(words[0]);
        m = Integer.parseInt(words[1]);
        x = Integer.parseInt(words[2]);

        loc = new int[(1 << 20) + 10];
        f = new int[n + 1];
        Arrays.fill(loc, -1);
        f[0] = -1;

        words = br.readLine().split(" ");
        for (int i = 0; i < n; ++i) {
            int a = Integer.parseInt(words[i]);
            int b = a ^ x;
            f[i + 1] = Math.max(f[i], loc[b]);
            loc[a] = i;
        }

        for (int i = 0; i < m; ++i) {
            words = br.readLine().split(" ");
            int l = Integer.parseInt(words[0]) - 1;
            int r = Integer.parseInt(words[1]) - 1;
            if (f[r + 1] >= l) {
                wr.write("yes\n");
            } else {
                wr.write("no\n");
            }
        }
        wr.flush();
    }
}

// 哈希表 11/13
//public class Q4645 {
//    static int n;
//    static int m;
//    static int x;
//    static int[] nums;
//    static HashMap<Integer, ArrayList<Integer>> map = new HashMap<>();
//
//    static boolean check(int l, int r) {
//        for (int i = l; i <= r; ++i) {
//            int b = nums[i] ^ x;
//            if (map.containsKey(b)) {
//                for (Integer k : map.get(b)) {
//                    if (k >= l && k <= r) {
//                        return true;
//                    }
//                }
//            }
//        }
//        return false;
//    }
//
//    public static void main(String[] args) throws IOException {
//        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//        BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(System.out));
//        String[] words = br.readLine().split(" ");
//        n = Integer.parseInt(words[0]);
//        m = Integer.parseInt(words[1]);
//        x = Integer.parseInt(words[2]);
//        nums = new int[n];
//
//        words = br.readLine().split(" ");
//        for (int i = 0; i < n; ++i) {
//            nums[i] = Integer.parseInt(words[i]);
//            if (!map.containsKey(nums[i])) {
//                map.put(nums[i], new ArrayList<>());
//            }
//            map.get(nums[i]).add(i);
//        }
//
//        for (int i = 0; i < m; ++i) {
//            words = br.readLine().split(" ");
//            int l = Integer.parseInt(words[0]) - 1;
//            int r = Integer.parseInt(words[1]) - 1;
//            if (check(l, r)) {
//                wr.write("yes\n");
//            } else {
//                wr.write("no\n");
//            }
//        }
//        wr.flush();
//    }
//}